package xyz.xtt.user.constants;

import lombok.Getter;
import xyz.xtt.common.exception.BaseMessage;

/**
 * 通通链操作错误信息类
 * 
 * @author huqibo
 */
/**
 * @author huqibo
 * @date 2025/02/10
 */
@Getter
public enum ErrorMessage implements BaseMessage {

	UNKNOWN_ERROR(9999, "unknown error"),
	/**
	 * 请求过快，请稍候在试
	 */
	SUBMIT_TIMEOUT(997, "提交请求超时,请重新进入页面填写后提交"), ARGUMENT_NOT_VALID(1, "参数错误"), ASSET_NOT_EXIST(2, "资产不存在"), NOT_ALLOWED_ONESELF(3, "不能购买自己的资产"),
	ASSET_EXCEPTION(4, "资产信息异常"), NEED_AUTHENTICATION(5, "用户需要认证"), USER_NOT_EXIST(6, "用户不存在"), ORDER_FAILD(7, "下单失败"), ASSET_STATUS_EX(8, "资产状态异常"),
	/**
	 * nft名称审核不通过
	 */
	TEXT_FAIL(9, "名称或描述审核不通过"),
	/**
	 * nft图片审核不通过
	 */
	IMAGE_FAIL(10, "图片审核不通过"),
	/**
	 * 不支持的图片类型
	 */
	UNSUPPORTED_FILE_TYEPS(11, "不支持的图片类型"),
	/**
	 * 今日已铸NFT数量超过上限
	 */
	DAY_SUCC_LIMIT(12, "今日已铸数量超过上限"),
	/**
	 * 内容审核连续不通过次数太多
	 */
	CONTINUOUS_LIMIT(13, "内容审核连续不通过次数太多"),
	/**
	 * 内容审核错误次数太多
	 */
	TOTAL_ERR_DAY_LIMIT(14, "内容审核错误次数太多"),
	/**
	 * 内容审核错误次数太多
	 */
	TOTAL_REQUSET_DAY_LIMIT(15, "请求次数太多"),
	/**
	 * 目标用户没有该风格
	 */
	USER_NOT_EXIST_COLLECTION(16, "目标用户没有该风格"),
	/**
	 * 资源域名非法请求
	 */
	ILLEGAL_DOMAIN_REQUEST(17, "资源域名非法请求"),
	/**
	 * 资源域名非法请求
	 */
	SAME_NAME_COLL_EXIST(18, "存在同名风格请修改"),
	/**
	 * 资源域名非法请求
	 */
	ASSET_TYPE_ERR(19, "资产分类错误"),
	/**
	 * 不是拥有者
	 */
	ALLOWED_NOT_ME(20, "不是拥有者"),
	/**
	 * 不是拥有者
	 */
	NOT_AN_AGENT(21, "不是代理商"),
	/**
	 * 资产不是下架状态
	 */
	ASSET_NOT_DOWN(22, "资产不是下架状态"),
	/**
	 * 资产不是下架状态
	 */
	ASSET_NOT_UP(23, "资产不是上架状态"),
	/**
	 * 资产不是下架状态
	 */
	DIRECT_ORDER_OWNER_OTHER_USER(24, "当前资产有其它定向定单"),
	/**
	 * 不支持定向解锁
	 */
	UNSUPPORTED_ASSET_TYPE(25, "不支持定向解锁"),
	/**
	 * 目标权益不存在
	 */
	ENTITLEMENT_NOT_EXIST(26, "目标权益不存在"),
	/**
	 * 目标权益已兑换
	 */
	ENTITLEMENT_ALREADY_REDEEMED(26, "目标权益已兑换"),

	CERT_NO_ERR(27, "姓名或身份证不匹配"), CERT_NAME_ERR(28, "姓名或身份证不匹配"), CERT_LIMIT(29, "该用户认证时间正在冷却～"),

	/**
	 * 当前不在竞换时间
	 */
	INVALID_TIME_RANGE(30, "当前不在兑换时间"),
	/**
	 * 请检查配置参数
	 */
	CHECK_PARAM(31, "请检查配置参数"),
	/**
	 * 请检查配置参数
	 */
	TARGET_EXEC_SERVICE_NOT_EXIST(32, "目标处理器不存在"), LUCK_PHONE_LOCK_FAIL(33, "该号码已经被预占，请重新选择"), ERROR_GENERAL(34, "网络好像有点问题，请刷新页面再次尝试"),
	LUCK_PHONE_CAN_NOT_USE(35, "该号码暂时无法使用，请重新选择"),
	/**
	 * 权益兑换异常
	 */
	EQUITY_EXCHANGE_FAILD(36, "权益兑换异常"),
	/**
	 * 用户没有该权益
	 */
	EQUITY_EXCHANGE_USER_WRONG(37, "用户没有此项权益或兑换权益数量不足，不可兑换"),
	/**
	 * 权益数量为空
	 */
	EQUITYS_NUMBER_ZERO(38, "权益数量为0，已兑换完！"),

	EQUITY_EXCHANGE_INTERFACE(39, "兑换接口异常"),

	AGREEMENT_NOT_ACCEPTED(40, "请阅读并同意《服务政策》和《隐私政策》"), PHONE_NUMBER_FORMAT_ERROR(41, "手机号码格式有误"),

	/**
	 * 不存在手机号订单
	 */
	LUCK_ORDER_NULL(42, "订单不存在"),

	BENEFIT_PACKAGE_CAN_NOT_BE_PURCHASED(46, "权益包当前不可售卖"), BENEFIT_PACKAGE_UNIT_PRICE_NOT_MATCH(47, "权益包购买价格不匹配"),

	BENEFIT_PURCHASE_RECORD_STATUS_ERROR(48, "权益购买记录状态错误"), USER_BENEFIT_NOT_ENOUGH(49, "用户权益不足"), USER_BENEFIT_CONSUME_FAILED(50, "用户权益消耗失败"),
	USER_BENEFIT_RECOVER_FAILED(51, "用户权益恢复失败"),
	/**
	 * 图片参数异常
	 */
	IMAGE_MINT_PARAM_EX(52, "图片参数异常"),
	/**
	 * 视频参数异常
	 */
	VIDEO_MINT_PARAM_EX(52, "视频参数异常"),
	/**
	 * 视频参数异常
	 */
	MINT_RESULT_EX(53, "铸造失败"), MINT_PRICE_CONFIG_INVALID(54, "铸造价格配置无效"),
	/**
	 * 重新铸造失败
	 */
	FAIL_RE_MINT_EX(55, "重新铸造失败"),

	/**
	 * 重新铸造失败
	 */
	VIDEO_AUDIT_EX(56, "视频审核异常"), BENEFIT_NOT_EXIST(55, "权益不存在"), BENEFIT_PACKAGE_NOT_EXIST(56, "权益包不存在"), USER_BENEFIT_CONSUME_REPEAT(57, "权益消耗重复"),
	AI_CODE_RUN_SHORT(58, "AI次数不足"), AI_IMG_TO_TMG_FAILED(59, "AI生图失败"),
	/**
	 * 不是铸造者
	 */
	NOT_AN_MINER(60, "不是铸造者"),
	/**
	 * 上架操作失败
	 */
	ASSET_SETTING_EX(61, "操作失败"),

	CURR_NOTICE_PERIOD(62, "公示期"),
	/**
	 * 公示期下架在上架没有公示期时间
	 */
	NOTICE_PERIOD_BEFORE_DOWN(63, "公示期下架在上架没有公示期时间"), NOTICE_PERIOD_EX(64, "公示期参数检查异常"),
	/**
	 * 资产售卖设置为空
	 */
	ASSET_SETTING_IS_NULL(65, "资产售卖设置为空"), ASSET_CONFIG_NOT_EXIST(66, "资产配置信息不存在"),
	/**
	 * 当前购买人信息没有上链
	 */
	ASSET_TRANSACTION_CURR_NOT_UP_CHAIN(67, "当前购买人信息没有上链"),
	/**
	 * 公示期校验失败
	 */
	CHECK_NOTICE_PERIOD_EX(68, "公示期校验失败"),
	/**
	 * 预售期校验失败
	 */
	CHECK_PRE_SELL_EX(68, "预售期校验失败"),
	/**
	 * 预售转换失败
	 */
	CONVERT_PRE_SELL_EX(69, "预售转换失败"),
	/**
	 * 上架需要满足铸造之后天数要求
	 */
	CREATED_DAYS_LIMIT(70, "上架需要满足铸造之后天数要求"),
	/**
	 * 历史购买价异常
	 */
	MAX_PRICE_HISTORY_EX(71, "历史购买价异常"),
	/**
	 * 售价不符合要求
	 */
	SELL_PRICE_EX(72, "定价不符合要求"),
	/**
	 * 售价不符合要求
	 */
	NOT_OWNER_NFT_ASSET(73, "非资产中心数据不允许上架"),
	/**
	 * 剩余数量不足
	 */
	INSUFFICIENT_BALANCE(1004, "剩余数量不足"),
	/**
	 * 未满18岁
	 */
	CHAGE_AGE_EX(1005, "未满18岁"),
	/**
	 * 订单已存在
	 */
	USER_REG_EX(2041, "用户注册失败"), INVALID_SPLIT_ACCOUNT_DATA(2065, "无效的分账数据"), UPDATE_USER_FUND_ACCOUNT_FAILED(2066, "更新用户余额账户失败"),
	USER_FUND_RECORD_NOT_EXIST(2067, "账户交易记录不存在"), SELLER_FUND_CAN_NOT_BE_SETTLED(2068, "卖方资金暂不能结算"), USER_FUND_ACCOUNT_NOT_EXIST(2069, "用户资金账户不存在"),
	USER_FUND_ACCOUNT_DATA_ERROR(2070, "用户资金账户数据异常"),;

	private final Integer code;

	private final String message;

	public Integer code() {
		return code;
	}

	public String message() {
		return message;
	}

	ErrorMessage(Integer code, String message) {
		this.code = code;
		this.message = message;
	}
}
